package com.zhiche.lisa.bms.pojo.vo.pay;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * @Author: liuanshun
 * @Description:
 * @Date: Create in 15:38 2019/1/4
 */
public class PayApplyTransformVO {
    private Long id;
    /**
     * 支付申请单号
     */
    private String payApplyCode;
    /**
     * 承运商名称
     */
    private String lspName;
    /**
     * 承运商id
     */
    private String lspId;
    /**
     * 类型：10-承运商、20-车队、 30-司机
     */
    private Long billType;

    /**
     * 开户银行
     */
    private String bankName;

    /**
     * 开户账户
     */
    private String bankCode;

    /**
     * 申请日期
     */
    private Date applyDate;
    /**
     * 账单金额
     */
    private BigDecimal billSum;
    /**
     * 已预付金额
     */
    private BigDecimal paidSum;
    /**
     * 应收款项金额
     */
    private BigDecimal incSum;
    /**
     * 考核扣款金额
     */
    private BigDecimal chargeSum;
    /**
     * 实付金额
     */
    private BigDecimal paymentSum;
    /**
     * 现金支付金额
     */
    private BigDecimal cashPaySum;
    /**
     * 油卡支付金额
     */
    private BigDecimal oilPaySum;
    /**
     * 油卡尾款金额
     */
    private BigDecimal oilBaPaySum;
    /**
     * 油卡尾款已排金额
     */
    private BigDecimal oilAlPaySum;
    /**
     * 油卡尾款剩余金额
     */
    private BigDecimal oilErPaySum;
    /**
     * 现金尾款金额
     */
    private BigDecimal cashBaPaySum;
    /**
     * 现金尾款已排金额
     */
    private BigDecimal cashAlPaySum;
    /**
     * 现金尾款剩余金额
     */
    private BigDecimal cashErPaySum;
    /**
     * 已排款金额
     */
    private BigDecimal executeSum;
    /**
     * 未排款金额
     */
    private BigDecimal noExecuteSum;
    /**
     * 当次排款金额
     */
    private BigDecimal currentExecute;
    /**
     * 余额
     */
    private BigDecimal balance;
    /**
     * 账单状态 0-新增 1-审核
     */
    private Integer status;
    /**
     * 是否开票 0-否, 1-是
     */
    private Integer isInvoice;
    /**
     * 应收时间
     */
    private Date shouldReceiptDate;
    /**
     * 租户id
     */
    private Long tenantId;
    /**
     * 附件
     */
    private String accessory;

    /**
     * 审批流程id
     */
    private String activitiProcessId;
    /**
     * 审批流程节点id
     */
    private String activitiTaskId;
    /**
     * 审批流程节点说明
     */
    private String activitiTaskAssignee;
    /**
     * 审批流程节点名称
     */
    private String activitiTaskName;
    /**
     * 保险费
     */
    private BigDecimal premium;

    private String stateName;
    private String billTypeName;

    public String getStateName() {
        return stateName;
    }

    public void setStateName(String stateName) {
        this.stateName = stateName;
        status = "新增".equals(stateName) ? 0 : (
                "审核".equals(stateName) ? 1 : 3
        );
    }

    public String getBillTypeName() {
        return billTypeName;
    }

    public void setBillTypeName(String billTypeName) {
        this.billTypeName = billTypeName;
        billType = "承运商".equals(billTypeName) ? new Long(10) : (
                "车队".equals(billTypeName) ? new Long(20) : (
                        "司机".equals(billTypeName) ? new Long(30) : 0
                )
        );
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPayApplyCode() {
        return payApplyCode;
    }

    public void setPayApplyCode(String payApplyCode) {
        this.payApplyCode = payApplyCode;
    }

    public String getLspName() {
        return lspName;
    }

    public void setLspName(String lspName) {
        this.lspName = lspName;
    }

    public String getLspId() {
        return lspId;
    }

    public void setLspId(String lspId) {
        this.lspId = lspId;
    }

    public Long getBillType() {
        return billType;
    }

    public void setBillType(Long billType) {
        this.billType = billType;
        billTypeName = Objects.deepEquals(new Long(10), billType)
                ? "承运商" : (
                Objects.deepEquals(new Long(20), billType)
                        ? "车队" : (
                        Objects.deepEquals(new Long(30), billType)
                                ? "司机" : "其他"
                )
        );
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankCode() {
        return bankCode;
    }

    public void setBankCode(String bankCode) {
        this.bankCode = bankCode;
    }

    public Date getApplyDate() {
        return applyDate;
    }

    public void setApplyDate(Date applyDate) {
        this.applyDate = applyDate;
    }

    public BigDecimal getBillSum() {
        return billSum;
    }

    public void setBillSum(BigDecimal billSum) {
        this.billSum = billSum;
    }

    public BigDecimal getPaidSum() {
        return paidSum;
    }

    public void setPaidSum(BigDecimal paidSum) {
        this.paidSum = paidSum;
    }

    public BigDecimal getIncSum() {
        return incSum;
    }

    public void setIncSum(BigDecimal incSum) {
        this.incSum = incSum;
    }

    public BigDecimal getChargeSum() {
        return chargeSum;
    }

    public void setChargeSum(BigDecimal chargeSum) {
        this.chargeSum = chargeSum;
    }

    public BigDecimal getPaymentSum() {
        return paymentSum;
    }

    public void setPaymentSum(BigDecimal paymentSum) {
        this.paymentSum = paymentSum;
    }

    public BigDecimal getCashPaySum() {
        return cashPaySum;
    }

    public void setCashPaySum(BigDecimal cashPaySum) {
        this.cashPaySum = cashPaySum;
    }

    public BigDecimal getOilPaySum() {
        return oilPaySum;
    }

    public void setOilPaySum(BigDecimal oilPaySum) {
        this.oilPaySum = oilPaySum;
    }

    public BigDecimal getOilBaPaySum() {
        return oilBaPaySum;
    }

    public void setOilBaPaySum(BigDecimal oilBaPaySum) {
        this.oilBaPaySum = oilBaPaySum;
    }

    public BigDecimal getOilAlPaySum() {
        return oilAlPaySum;
    }

    public void setOilAlPaySum(BigDecimal oilAlPaySum) {
        this.oilAlPaySum = oilAlPaySum;
    }

    public BigDecimal getOilErPaySum() {
        return oilErPaySum;
    }

    public void setOilErPaySum(BigDecimal oilErPaySum) {
        this.oilErPaySum = oilErPaySum;
    }

    public BigDecimal getCashBaPaySum() {
        return cashBaPaySum;
    }

    public void setCashBaPaySum(BigDecimal cashBaPaySum) {
        this.cashBaPaySum = cashBaPaySum;
    }

    public BigDecimal getCashAlPaySum() {
        return cashAlPaySum;
    }

    public void setCashAlPaySum(BigDecimal cashAlPaySum) {
        this.cashAlPaySum = cashAlPaySum;
    }

    public BigDecimal getCashErPaySum() {
        return cashErPaySum;
    }

    public void setCashErPaySum(BigDecimal cashErPaySum) {
        this.cashErPaySum = cashErPaySum;
    }

    public BigDecimal getExecuteSum() {
        return executeSum;
    }

    public void setExecuteSum(BigDecimal executeSum) {
        this.executeSum = executeSum;
    }

    public BigDecimal getNoExecuteSum() {
        return noExecuteSum;
    }

    public void setNoExecuteSum(BigDecimal noExecuteSum) {
        this.noExecuteSum = noExecuteSum;
    }

    public BigDecimal getCurrentExecute() {
        return currentExecute;
    }

    public void setCurrentExecute(BigDecimal currentExecute) {
        this.currentExecute = currentExecute;
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
        stateName = Objects.deepEquals(new Integer(0), status)
                ? "新增" : (
                Objects.deepEquals(new Integer(1), status)
                        ? "审核" : "其他"
        );
    }

    public Integer getIsInvoice() {
        return isInvoice;
    }

    public void setIsInvoice(Integer isInvoice) {
        this.isInvoice = isInvoice;
    }

    public Date getShouldReceiptDate() {
        return shouldReceiptDate;
    }

    public void setShouldReceiptDate(Date shouldReceiptDate) {
        this.shouldReceiptDate = shouldReceiptDate;
    }

    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }

    public String getAccessory() {
        return accessory;
    }

    public void setAccessory(String accessory) {
        this.accessory = accessory;
    }

    public String getActivitiProcessId() {
        return activitiProcessId;
    }

    public void setActivitiProcessId(String activitiProcessId) {
        this.activitiProcessId = activitiProcessId;
    }

    public String getActivitiTaskId() {
        return activitiTaskId;
    }

    public void setActivitiTaskId(String activitiTaskId) {
        this.activitiTaskId = activitiTaskId;
    }

    public String getActivitiTaskAssignee() {
        return activitiTaskAssignee;
    }

    public void setActivitiTaskAssignee(String activitiTaskAssignee) {
        this.activitiTaskAssignee = activitiTaskAssignee;
    }

    public String getActivitiTaskName() {
        return activitiTaskName;
    }

    public void setActivitiTaskName(String activitiTaskName) {
        this.activitiTaskName = activitiTaskName;
    }

    public BigDecimal getPremium() {
        return premium;
    }

    public void setPremium(BigDecimal premium) {
        this.premium = premium;
    }
}
